Java 位运算符和移位运算符
一,运算的位运算符: & ~ | ^
主要是对二进制的位计算 :
& : 两个操作数中位都为1 结果才为1 其他结果为0
forExample: 128& 129
128转为二进制: 10000000
129转为二进制: 10000001
结果为: 1000000 为129
| : 两个位只要有一个为1,那么结果就是1,否则就为0
forExample: 还是 128 129的二进制 因为129的位上是1 所以结果129
51: 110011
129: 10000001
结果为: 100110011 为179
~: 如果位为0,结果是1,如果位为1,结果是0
forExample: 2 为 0010 位上是0 非就是 0010 为3 因为2是正数,非为 -3
^ : 两个操作数的位中,相同则结果为0,不同则结果为1。
计算二进制的方法:
51: 1 10011
129: 10000001
结果为: 10110010 结果为178
转二进制的话:比如100 那么 用
100/2 50 0
50/2 25 0
25/2 12 1
12/2 6 0
6/2 3 0
3/2 1 1
1/2 1 1 则值为 1100100B(从下往上读)二进制后加上B 十进制加D
二,移位运算符
160>>> 3
160的二进制为: 10100000 向右移动3位为: 10100 4位 1010 5位 101 6位:10 7为 1 二进制最低为4位 不够在高位补0 也就是左边补0
x<<y 相当于 x*2y ;x>>y相当于x/2y
// 二进制
http://www.zybang.com/question/833a3488a881c0898b871872458ef4f6.html
// 运算符介绍